package com.project.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.project.bean.EventBean;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.time.LocalDate;
import java.util.List;

/**
 * 事件持久层
 */
@Repository
public interface EventDao extends BaseMapper<EventBean> {
    /**
     * 分页显示所有事件记录
     * @return
     */
    IPage<EventBean> findAllEvent(Page<EventBean> page);


    /**
     * 添加事件
     * @param event
     */
    void addEvent(@Param("eventBean") EventBean event,
                  @Param("areaId") int areaId);


    /**
     * 根据事件id查询事件详细信息
     * @param eventId
     * @return
     */
    EventBean findId(@Param("eventId") int eventId);

//    申请专家会商

    /**
     * 申请专家会商
     * @param eventStage
     */
    void updateConsult(@Param("eventId")int eventId,String eventStage);



    /**
     * 根据事件id去修改灾情状况、防治方案
     * @param eventId
     * @param eventStage
     * @param eventControl
     */
    void updateEvent(@Param("eventId")int eventId,String eventStage,String eventControl);


    /**
     * 根据事件名称、灾情状况、发生位置、起始时间、结束时间模糊查询事件信息
     * @param eventName
     * @param eventStage
     * @param address
     * @param startTime
     * @param endTime
     * @return
     */
    IPage<EventBean> findName(Page<EventBean> page,
                             @Param("eventName") String eventName,
                             @Param("eventStage")String eventStage,
                             @Param("area")String address,
                             @Param("startTime")LocalDate startTime,
                             @Param("endTime")LocalDate endTime);


    /**
     * 显示所有会商信息
     * @return
     */
    List<EventBean> findAllConsult(@Param("eventStage") String eventStage);
}
